01xz - Digital Logic and Computer Architecture
01xz_wiki
http://www.01xz.net/wiki/Main_Page
MediaWiki 1.42.1
first-letter
Media
Special
Talk
User
User talk
Project
Project talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Main Page
0
1
1
2017-08-26T20:07:03Z
MediaWiki default
0
wikitext
text/x-wiki
<strong>MediaWiki has been installed.</strong>
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
5702e4d5fd9173246331a889294caf01a3ad3706
6
1
2017-08-30T23:45:59Z
Henry
1
wikitext
text/x-wiki
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net Verilog]</div>
Verilog problem set
</div>
a81d52ae0f0b9e1e65bab4daf703964805ab5dde
7
6
2017-08-30T23:46:58Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Stuff ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net Verilog]</div>
Verilog problem set
</div>
8394446700e6f57255db52aa58021fc785a18135
8
7
2017-08-31T07:39:53Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
This site has a collection of tools that can be used to help learn digital logic (in Verilog) and assembly language programming (Nios II and ARMv7).
These were originally created to go with several <abbr title="Mainly ECE241, 243, 253">second-year computer engineering courses</abbr> at the University of Toronto. You may find these useful either on their own, or used as part of a similar course.
Why? Practice is essential when learning any new language (whether programming, HDL, or human). These tools were created to make it easier to do more practice with feedback.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net Verilog]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net Assembly]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
1db3d99a2208f04f21556dbf112344e406117307
9
8
2017-08-31T22:27:21Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
This site has a collection of tools that can be used to help learn digital logic (in Verilog) and assembly language programming (Nios II and ARMv7).
These were originally created to go with several <abbr title="Mainly ECE241, 243, 253">second-year computer engineering courses</abbr> at the University of Toronto. You may find these useful either on their own, or used as part of a similar course.
Why? Practice is essential when learning any new language (whether programming, HDL, or human). These tools were created to make it easier to do more practice with feedback.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net Verilog]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net Assembly]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
1f4e354b804f0cc7a8bfc44eab91aabf20813535
10
9
2017-09-03T22:52:48Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
learning design of computer hardware and computers?
This site has a collection of tools that can be used to help learn digital logic (in Verilog) and assembly language programming (Nios II and ARMv7).
These were originally created to go with several <abbr title="Mainly ECE241, 243, 253">second-year computer engineering courses</abbr> at the University of Toronto. You may find these useful either on their own, or used as part of a similar course.
Why? Practice is essential when learning any new language (whether programming, HDL, or human). These tools were created to make it easier to do more practice with feedback.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net Verilog]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net Assembly]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
c89bc066b224ae962964b5043633ea753eb62852
11
10
2017-09-04T05:05:51Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that can be used to help learn digital logic (in Verilog) and assembly language programming (Nios II and ARMv7).
These were originally created to go with several <abbr title="Mainly ECE241, 243, 253">second-year computer engineering courses</abbr> at the University of Toronto. You may find these useful either on their own, or used as part of a similar course.
Why? Practice is essential when learning any new language (whether programming, HDL, or human). These tools were created to make it easier to do more practice with feedback.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net Verilog]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net Assembly]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
64190d537addafcf566ee52ac6ca9650f72444e4
12
11
2017-09-05T04:52:07Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn several fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net Verilog]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net Assembly]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
1cb1e04dc6a43568c5e28df412faf80060a3e2ee
14
12
2017-09-05T04:57:53Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn several fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net Assembly]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
f66f3ac49c8024df52b0afe960e1c6b3a388b371
15
14
2017-09-05T04:59:40Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net Assembly]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
2f6ef92b65a4e45dcf1bff7d428ffc077cf7b6af
16
15
2017-09-05T05:00:16Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
2fa3cf1586a6d9d77f9dd2ec98465eeb11e02596
19
16
2017-09-05T19:29:34Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net|60x42px]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
77f1e78b66dd43b424e969612a6f620dc388e1bf
20
19
2017-09-05T19:33:27Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net|class="imghalf"]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
770538d2e0fae8f4bddec29997f3072b012ac428
21
20
2017-09-05T19:35:08Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net|class=imghalf]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
ec67ad16b065b4b38d09806df22e827aa9860f10
22
21
2017-09-05T19:36:44Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_hdlbits.png|link=http://verilog.stuffedcow.net]][http://nios.stuffedcow.net Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
5c418ae830aea83233c9f6cad7828bbf1156c714
24
22
2017-09-05T19:58:40Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
499ebdc9b4852c1170dc63b2913dd6f8f3165f6f
25
24
2017-09-05T20:00:14Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.6em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
34a1e5aadca03a48e73a52e5275b655f24f0dd16
26
25
2017-09-05T20:00:48Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
Verilog problem set, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
7049fbcda6571d07748a4add70c3af11702d654b
27
26
2017-09-05T20:10:11Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
This is a set of short Verilog problems, with an online judge to check your solution for correctness. The problems star with a tutorial style that teaches basic Verilog language features. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
a26cd6cb346a6141a9d0d01fc04324eac96ab6ee
28
27
2017-09-05T23:57:06Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems, with an online judge to check solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
Two assembly language problem sets, for Nios II and ARMv7, online judge, in a semi-tutorial style. Start with explanations of language features followed by short exercises in using them, then progress onto increasingly complex designs.
Online judge allows instant feedback on code correctness (but unfortunately not coding style), which allows much more practice than the traditional weekly labs or assignments.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
A simulator and debugger for Nios II and ARMv7 systems, including some I/O devices (excludes MMU). The simulated I/O devices are based on the computer systems used by the Altera University Program.
Can be used to test and debug assembly language programs without having real hardware.
Debugger is better than real hardware: Has assertions to catch common mistakes, and faster. Simulation speed tends to be slower than hardware, which may limit its use in real-time applications.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
af6289576d5cb8e84ab8c3def325bb43fd9f9a9a
29
28
2017-09-06T19:06:36Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #fcfeff;
margin: 0.5em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems, with an online judge to check solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
ASMBits is a set of short assembly language programming problems, in the same style as HDLBits. There are currently two similar sets of problems, one for each instruction set (Nios II and ARMv7).
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
This is a simulator and debugger for Nios II and ARMv7 systems, including some I/O devices. The simulated I/O devices are based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
ba8de7ac1016166abfdf1caa5c76cd7eb5a6a4f3
30
29
2017-09-06T20:32:19Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems, with an online judge to check solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
ASMBits is a set of short assembly language programming problems, in the same style as HDLBits. There are currently two similar sets of problems, one for each instruction set (Nios II and ARMv7).
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
This is a simulator and debugger for Nios II and ARMv7 systems, including some I/O devices. The simulated I/O devices are based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
5f1c40d73ce7e40228490ebcaccef7a0d588d47e
33
30
2017-09-07T04:18:31Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year undergraduate computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to encourage doing more practice on short and quick problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems, with an online judge to check solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
ASMBits is a set of short assembly language programming problems, in the same style as HDLBits. There are currently two similar sets of problems, one for each instruction set (Nios II and ARMv7).
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
This is a simulator and debugger for Nios II and ARMv7 systems, including some I/O devices. The simulated I/O devices are based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
491e223651115dd2c38e91950b2fda6e98187a3e
34
33
2017-09-07T18:13:24Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site helps you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year undergraduate computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems, with an online judge to check solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
ASMBits is a set of short assembly language programming problems, in the same style as HDLBits. There are currently two similar sets of problems, one for each instruction set (Nios II and ARMv7).
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
This is a simulator and debugger for Nios II and ARMv7 systems, including some I/O devices. The simulated I/O devices are based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
f22f2c83c672f73847f815acf7d58f237bea9751
35
34
2017-09-07T19:44:48Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year undergraduate computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems, with an online judge to check solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
ASMBits is a set of short assembly language programming problems, in the same style as HDLBits. There are currently two similar sets of problems, one for each instruction set (Nios II and ARMv7).
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
This is a simulator and debugger for Nios II and ARMv7 systems, including some I/O devices. The simulated I/O devices are based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
e7e132007d0c6e152371f24698c521bea2f2c524
36
35
2017-09-07T23:06:08Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
This site has a collection of tools that are used to help learn some fundamental topics in the design of computer systems: digital logic and assembly language programming.
These tools were originally created to go with several <abbr title="Mainly ECE241, ECE243, ECE253">second-year undergraduate computer engineering courses</abbr> at the University of Toronto. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems. <html><a href="#" onclick="$('#panel1_more').toggle(); return false;">[Show more]</a></html>
<div id="panel1_more" style="display:none;">An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
This is a simulator and debugger for Nios II and ARMv7 systems. <html><a href="#" onclick="$('#panel3_more').toggle(); return false;">[Show more]</a></html>
<div id="panel3_more" style="display:none;">The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
d8f1b819cf3c8b0b669d952a35a05f383cc5ef28
37
36
2017-09-07T23:26:59Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits — Verilog practice]</div>
HDLBits is a set of short Verilog design problems. <html><a href="#" onclick="$('#panel1_more').toggle(); return false;">[Show more]</a></html>
<div id="panel1_more" style="display:none;">An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits — Assembly programming practice]</div>
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://nios.stuffedcow.net CPU Simulator]</div>
This is a simulator and debugger for Nios II and ARMv7 systems. <html><a href="#" onclick="$('#panel3_more').toggle(); return false;">[Show more]</a></html>
<div id="panel3_more" style="display:none;">The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
4c5e27c6d0e0de9fcf753e5cd91695955c48a86d
41
37
2017-09-15T22:48:03Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://verilog.stuffedcow.net]][http://verilog.stuffedcow.net HDLBits]</div>
HDLBits is a set of short Verilog design problems. <html><a href="#" onclick="$('#panel1_more').toggle(); return false;">[Show more]</a></html>
<div id="panel1_more" style="display:none;">An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.stuffedcow.net]][http://asmbits.stuffedcow.net ASMBits]</div>
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://nios.stuffedcow.net]][http://cpulator.01xz.net CPUlator]</div>
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. <html><a href="#" onclick="$('#panel3_more').toggle(); return false;">[Show more]</a></html>
<div id="panel3_more" style="display:none;">The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
4c0617b1e41acd5b8fe7d92b8a8b2a8dedd0c141
42
41
2017-09-16T01:25:03Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=http://hdlbits.01xz.net]][http://hdlbits.01xz.net HDLBits]</div>
HDLBits is a set of short Verilog design problems. <html><a href="#" onclick="$('#panel1_more').toggle(); return false;">[Show more]</a></html>
<div id="panel1_more" style="display:none;">An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=http://asmbits.01xz.net]][http://asmbits.01xz.net ASMBits]</div>
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=http://cpulator.01xz.net]][http://cpulator.01xz.net CPUlator]</div>
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. <html><a href="#" onclick="$('#panel3_more').toggle(); return false;">[Show more]</a></html>
<div id="panel3_more" style="display:none;">The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
0591f1dedcdd3995034b48e130dd0048e62c0464
45
42
2017-09-22T08:36:45Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
HDLBits is a set of short Verilog design problems. <html><a href="#" onclick="$('#panel1_more').toggle(); return false;">[Show more]</a></html>
<div id="panel1_more" style="display:none;">An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator]</div>
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. <html><a href="#" onclick="$('#panel3_more').toggle(); return false;">[Show more]</a></html>
<div id="panel3_more" style="display:none;">The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
9097bb5fac3f62691d981624963233e15a79c11d
46
45
2017-09-24T19:34:35Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
HDLBits is a set of short Verilog design problems. <html><a href="#" onclick="$('#panel1_more').toggle(); return false;">[Show more]</a></html>
<div id="panel1_more" style="display:none;">An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. <html><a href="#" onclick="$('#panel3_more').toggle(); return false;">[Show more]</a></html>
<div id="panel3_more" style="display:none;">The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
2ebf52ff684abfcc27c4b0e5e726a20ff02caccc
47
46
2017-09-24T19:45:09Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]<html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus">[+]</a></html></div>
<div id="panel1_more" style="display:none;">HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. <html><a href="#" onclick="$('#panel3_more').toggle(); return false;">[Show more]</a></html>
<div id="panel3_more" style="display:none;">The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
4a6832725bf70a501b596e1559122a3ed9420d92
48
47
2017-09-24T20:01:54Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
float:right;
font-size:36px;
line-height:42px;
color: #00f;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head">[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]<html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html></div>
<div id="panel1_more" style="display:none;">HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head">[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]<html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html></div>
<div id="panel2_more" style="display:none;">ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.</div>
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]<html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html></div>
<div id="panel3_more" style="display:none;">CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head">[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]<html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html></div>
<div id="panel4_more" style="display:none;">This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.<div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
9320e84529804e675aa057fbf00a703cdd953d89
49
48
2017-09-24T20:10:56Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #00f;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.<div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
8b0820054aee80f6257f55051aa4f27bf17e1f93
50
49
2017-09-24T20:17:00Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.<div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
5f587c66b84801271df9e3fa2ef18b525c2169e0
51
50
2017-09-24T20:27:34Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin-right: 0.6em;
width: 60px;
height: 42px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
8f736422c586e25476ac71ffc6aceef59e2aa428
52
51
2017-09-24T20:33:31Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.5em;
display: block;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin: 10px 0.5em 11px 0;
width: 30px;
height: 21px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
64e0230cf3b5bb43126eaa6008e63a7e84b11930
53
52
2017-09-24T20:35:43Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
47d63d2b4f013a87e0ba0f4a14ce7b1404dfe2b5
MediaWiki:Sidebar
8
3
3
2017-08-26T20:11:59Z
Henry
1
Created page with " * navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help * TOOLBOX * LANGUAGES"
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help
* TOOLBOX
* LANGUAGES
f966574c81834c40d3b3c9ac7ff6d0e1405ad27b
5
3
2017-08-26T20:28:22Z
Henry
1
wikitext
text/x-wiki
* Projects
** http://verilog.stuffedcow.net|Verilog Problem Set
** http://asmbits.stuffedcow.net|Nios II and ARMv7 Assembly Problem Set
** http://nios.stuffedcow.net|Nios II and ARMv7 Simulator
a77b2c2566298842b18ccf5d80f8e872d3c8c971
31
5
2017-09-06T21:54:34Z
Henry
1
wikitext
text/x-wiki
* Projects
** http://verilog.stuffedcow.net|Verilog Problem Set
** http://asmbits.stuffedcow.net|Assembly Language Problem Set
** http://nios.stuffedcow.net|Nios II and ARMv7 Simulator
c9c1984f305a9fa473a2b34ec44ad75146a98c77
43
31
2017-09-20T05:26:51Z
Henry
1
wikitext
text/x-wiki
* Projects
** http://hdlbits.01xz.net|HDLBits Verilog Problem Set
** http://asmbits.01xz.net|ASMBits Assembly Language Problem Set
** http://cpulator.01xz.net|CPUlator Nios II and ARMv7 Simulator
adaa8945444ad7c0942ddfb90a6673e8a386b805
44
43
2017-09-20T05:27:14Z
Henry
1
wikitext
text/x-wiki
* Projects
** http://hdlbits.01xz.net|HDLBits Verilog Problem Set
** http://asmbits.01xz.net|ASMBits Nios/ARMv7 Problem Set
** http://cpulator.01xz.net|CPUlator Nios II and ARMv7 Simulator
cddd66fd30b4d84d496632d56efab8d7defec90d
File:Logo seq.png
6
4
13
2017-09-05T04:56:00Z
Henry
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Asmbits logo.png
6
5
17
2017-09-05T19:27:32Z
Henry
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
18
17
2017-09-05T19:28:39Z
Henry
1
Henry uploaded a new version of [[File:Asmbits logo.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Logo niossim.png
6
6
23
2017-09-05T19:58:11Z
Henry
1
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Project:About
4
7
38
2017-09-11T02:24:02Z
Henry
1
Created page with "== What's with the name? == The name <b>01xz.net</b> is named after the four logic values used by nets (and variables) in Verilog: '''0''', '''1''', '''x''' (unknown/don't-car..."
wikitext
text/x-wiki
== What's with the name? ==
The name <b>01xz.net</b> is named after the four logic values used by nets (and variables) in Verilog: '''0''', '''1''', '''x''' (unknown/don't-care), and '''z''' (high impedance). SystemVerilog added two-state (0 and 1) variables to the language, but nets are still always four-state.
8a637e280be4d3cb3d4fe603c28a2ee7a46b9043
39
38
2017-09-11T02:25:29Z
Henry
1
wikitext
text/x-wiki
== What's with the name? ==
The name <b>01xz.net</b> is named after the four-state logic used by nets (and variables) in Verilog: '''0''', '''1''', '''x''' (unknown/don't-care), and '''z''' (high impedance). SystemVerilog added two-state (0 and 1) variables to the language, but nets are still always four-state.
3e96a0dc06dd552da333373c645ab13de5ec6bd2
40
39
2017-09-11T02:26:48Z
Henry
1
/* What's with the name? */
wikitext
text/x-wiki
=== What's with the name? ===
The name <b>01xz.net</b> is named after the four-state logic used by nets (and variables) in Verilog: '''0''', '''1''', '''x''' (unknown/don't-care), and '''z''' (high impedance). SystemVerilog added two-state (0 and 1) variables to the language, but nets are still always four-state.
909d0ef89e92eb34e9aa8f1c48a0c68ec9cea106
MediaWiki:Sidebar
8
3
54
44
2017-09-24T20:40:57Z
Henry
1
wikitext
text/x-wiki
* Projects
** http://hdlbits.01xz.net|HDLBits Verilog Problem Set
** http://asmbits.01xz.net|ASMBits Nios/ARMv7 Problem Set
** http://cpulator.01xz.net|CPUlator Nios II Simulator
** http://cpulator.01xz.net/?sys=arm|CPUlator ARMv7 Simulator
5c1ace221b78f82c9fadb85a16187200486b2e7e
57
54
2017-09-28T07:33:22Z
Henry
1
wikitext
text/x-wiki
* Projects
** //hdlbits.01xz.net|HDLBits Verilog Problem Set
** http://asmbits.01xz.net|ASMBits Nios/ARMv7 Problem Set
** http://cpulator.01xz.net|CPUlator Nios II Simulator
** http://cpulator.01xz.net/?sys=arm|CPUlator ARMv7 Simulator
549940428fe977aa02badc8745c7df072b359cc0
58
57
2017-09-28T07:34:21Z
Henry
1
wikitext
text/x-wiki
* Projects
** https://hdlbits.01xz.net|HDLBits Verilog Problem Set
** https://asmbits.01xz.net|ASMBits Nios/ARMv7 Problem Set
** https://cpulator.01xz.net|CPUlator Nios II Simulator
** https://cpulator.01xz.net/?sys=arm|CPUlator ARMv7 Simulator
4b40bc9b828de79a3782ff80935096a35cac0a85
60
58
2017-10-03T21:16:45Z
Henry
1
wikitext
text/x-wiki
* Projects
** https://hdlbits.01xz.net/|HDLBits — Verilog practice
** https://asmbits.01xz.net/|ASMBits — Assembly language practice
** https://cpulator.01xz.net/|CPUlator — Nios II simulator
** https://cpulator.01xz.net/arm|CPUlator — ARMv7 simulator
5c9ca1d62bb8cf6413a342dee4ec7765b6ffc78c
72
60
2017-11-14T21:29:53Z
Henry
1
wikitext
text/x-wiki
* Projects
** https://hdlbits.01xz.net/|HDLBits — Verilog practice
** https://asmbits.01xz.net/|ASMBits — Assembly language practice
** https://cpulator.01xz.net/|CPUlator — Nios II simulator
** https://cpulator.01xz.net/arm|CPUlator — ARMv7 simulator
* About
** [[Project:About|About]]
e365df3fd8f755239deb06441d6b64625e159ffe
73
72
2017-11-14T21:33:11Z
Henry
1
wikitext
text/x-wiki
* Projects
** https://hdlbits.01xz.net/|HDLBits — Verilog practice
** https://asmbits.01xz.net/|ASMBits — Assembly language practice
** https://cpulator.01xz.net/|CPUlator — Nios II simulator
** https://cpulator.01xz.net/arm|CPUlator — ARMv7 simulator
* About
** [[Project:About]]|About
2e852917d56ad85344d36523e9d747f73b907086
74
73
2017-11-14T21:33:22Z
Henry
1
wikitext
text/x-wiki
* Projects
** https://hdlbits.01xz.net/|HDLBits — Verilog practice
** https://asmbits.01xz.net/|ASMBits — Assembly language practice
** https://cpulator.01xz.net/|CPUlator — Nios II simulator
** https://cpulator.01xz.net/arm|CPUlator — ARMv7 simulator
* About
** Project:About|About
f5b2b0e2f2ba4c3a444ca52b5ee89e431807e80c
Main Page
0
1
55
53
2017-09-25T04:41:19Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
66ece6aed69c8f31d86154da0819d2f690ac45ab
56
55
2017-09-25T04:42:25Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/?sys=arm]][//cpulator.01xz.net/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
fb5e54cd59bc78f3f3105deee392476906598497
59
56
2017-09-29T22:04:57Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
The simulator can be used to test and debug assembly language programs without having real hardware. It is complete enough to do most lab assignments that are based on Altera's computer systems. It can also be used with the ASMBits problems. The simulator's debugger includes run-time assertions to catch common mistakes (which hardware cannot do), but simulation speed tends to be slower than hardware.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
dba17cadc76bb0cba596f0fe65892d934bfc2993
61
59
2017-11-12T00:10:22Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and perhaps used for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common mistakes (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
c4d0123823a06f833e3d3f9c0519f87ef84ac57c
62
61
2017-11-12T01:01:45Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel a.plus {
display: inline-block;
float: right;
font-size:36px;
line-height:42px;
color: #aaa;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and perhaps used for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common mistakes (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Practice the basics first so that you become quick and accurate at the simple things.
* '''Assembly coding assignments''': The CPUlator simulator is a nearly-complete simulation of a Nios and ARMv7 system. It's quicker and easier to debug in the simulator, and in almost all cases they will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Suggesting exercises that coincide with the current topic may be useful.
* '''Examples''': When answering student questions (e.g., on discussion boards), I often like to code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to a code example, while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
d491550867027b07a1dbff323711675ccee0dd74
63
62
2017-11-14T06:45:34Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and perhaps used for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common mistakes (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Practice the basics first so that you become quick and accurate at the simple things.
* '''Assembly coding assignments''': The CPUlator simulator is a nearly-complete simulation of a Nios and ARMv7 system. It's quicker and easier to debug in the simulator, and in almost all cases they will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Suggesting exercises that coincide with the current topic may be useful.
* '''Examples''': When answering student questions (e.g., on discussion boards), I often like to code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to a code example, while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
5e7acb9d34fe2c6657a06f1b2b101591027711cd
64
63
2017-11-14T08:05:23Z
Henry
1
/* How to use? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and perhaps used for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common mistakes (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often like to code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
4e8f47b0e2012cf4a7ea39c851e9c8d29a99316a
65
64
2017-11-14T08:06:19Z
Henry
1
/* How to use? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
These tools were originally created to complement several second-year undergraduate computer engineering <abbr title="ECE241, ECE243, ECE253">courses</abbr> at the University of Toronto, and have since been used by other similar courses. These courses cover digital logic design using Verilog and assembly language programming using Nios II and ARMv7 instruction sets. You may find these tools useful either on their own, or used as part of a similar course.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and perhaps used for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common mistakes (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
e8660fa75124a4a7ade356a784294fb3752e0b13
66
65
2017-11-14T08:14:40Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* '''HDLBits''': A problem set and online judge to practice digital circuit design in Verilog
* '''ASMBits''': Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* '''CPUlator''': An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and perhaps used for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common mistakes (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
1b0ccf3561c1f89724faf93ff719cf1f3ef68346
67
66
2017-11-14T08:16:05Z
Henry
1
/* Welcome */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and perhaps used for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common mistakes (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
57640f9a84ea567592b9313e868400292c3b8d49
68
67
2017-11-14T08:17:15Z
Henry
1
/* What's here? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=/asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
c862bc8d15db0846b566bc60da531d049ee35efb
69
68
2017-11-14T09:07:29Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel a {
color: #000;
}
div.panel a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
b2f7f330fa1d62972a2c643c8a3bd1e9bd0cd5a3
70
69
2017-11-14T19:48:21Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>Instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
97afcb6c3f4e73938909bb72eab5de0e9760a9eb
71
70
2017-11-14T19:50:34Z
Henry
1
/* How to use? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
393a34ddf385650609d89b4e3c663852a364e69d
78
71
2017-11-17T20:10:14Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.5em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
3f6018013b6c555cfde59ffe67e7a7d5800f403c
79
78
2017-11-17T20:11:32Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
966c7c3966ae16073b1e4303a04d039b419b17d4
80
79
2017-11-17T20:12:21Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
d84a39a78a5ddc17e80944340ab6da1db3e89e60
82
80
2017-11-17T20:13:59Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
</div>
</div>
610dca77471f5d6b88d7beb728081cada0d8cb90
83
82
2017-11-17T22:26:15Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses in '''spring 2018''' and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
</div>
</div>
00c9c51e00640d3c56b24cefa6173c0f88bb3a20
84
83
2017-11-17T23:55:20Z
Henry
1
/* How to use? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses (especially in '''spring 2018''') and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
</div>
</div>
25d609589ea3ef07da6511632fa6d4c5482b22da
85
84
2017-11-18T00:03:48Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses (especially in '''spring 2018''') and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
70f3780ff074f7dbc5ad614bdc64c73cfe33d19c
86
85
2017-11-20T09:59:05Z
Henry
1
/* How to use? */
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses (especially in '''spring 2018''') and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
a2a1e2e67dbf9f59c83178f98046ff7683fa07f4
87
86
2017-11-30T23:50:31Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net]][//cpulator.01xz.net CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/arm]][//cpulator.01xz.net/arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
cccaef1a3c27d2ef96666a6efeea02679f7b3bf0
88
87
2018-01-07T05:13:23Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/v1/]][//cpulator.01xz.net/v1/ CPUlator — Nios II]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The debugger includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel4_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/v1/?sys=arm]][//cpulator.01xz.net/v1/?sys=arm CPUlator — ARMv7]</div>
<div id="panel4_more" style="display:none;">
This is a shortcut to start CPUlator with an ARMv7 system. The simulated system can be changed within the simulator.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
e343b96f5b8058314f7ccd37dfee5d23d54eef65
89
88
2018-01-07T08:09:27Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-left: 1.4em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html></div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
The previous version of CPUlator is [//cpulator.01xz.net/v1/ here].
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
86eeb22703c23f19ae1c1a36067b9cf0bb4333cd
90
89
2018-01-08T04:38:24Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-left: 1.4em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html></div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
The [//cpulator.01xz.net current version] was released Jan. 7, 2018.<br>The previous version of CPUlator is [//cpulator.01xz.net/v1/ here].
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
cde2193fb55fd53a0ef74887256f27f92641a451
91
90
2018-01-21T23:54:27Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-left: 1.4em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html></div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
Coming soon: MIPS32 release 6 ISA support.
The [//cpulator.01xz.net current version] was released Jan. 7, 2018.<br>The previous version of CPUlator is [//cpulator.01xz.net/v1/ here].
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
ff493686c66f2d9cef96f1301ac9b3ce6e8d5bcd
92
91
2018-01-21T23:54:47Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-left: 1.4em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html></div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II and ARMv7 systems. The simulator also simulates some I/O devices, based on the computer systems used by the Altera University Program.
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
'''Coming soon''': MIPS32 release 6 ISA support.
The [//cpulator.01xz.net current version] was released Jan. 7, 2018.<br>The previous version of CPUlator is [//cpulator.01xz.net/v1/ here].
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
5b01de507078bea2b73bacad8819de7594210b05
93
92
2018-01-26T22:49:25Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-left: 1.4em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html></div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-right: 1em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html> MIPS32 release 6 ISA support.
The [//cpulator.01xz.net current version] was released Jan. 7, 2018.<br>The previous version of CPUlator is [//cpulator.01xz.net/v1/ here].
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
42e54ea91c730e19246128ba5e9a97ff55dc22b0
94
93
2018-03-01T05:40:28Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system Nios II and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-right: 1em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html> MIPS32 release 6 ISA support.
The [//cpulator.01xz.net current version] was released Jan. 7, 2018.<br>The previous version of CPUlator is [//cpulator.01xz.net/v1/ here].
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
1945aac85940ffe1f2a5b50ccd9fa47dc5901434
95
94
2018-03-01T05:40:52Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system MIPS, Nios II, and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-right: 1em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html> MIPS32 release 6 ISA support.
The [//cpulator.01xz.net current version] was released Jan. 7, 2018.<br>The previous version of CPUlator is [//cpulator.01xz.net/v1/ here].
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
6c67ac69050f4306049b630d599a7e719f2bcf11
96
95
2018-03-01T05:43:46Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system MIPS, Nios II, and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems, intended for education use. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-right: 1em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html> MIPS32 release 6 ISA support.
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
5a3c91f6b2158072e98155b5cd910915e37335cc
97
96
2018-11-23T10:07:14Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system MIPS, Nios II, and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems, intended for education use. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
<html><div style="font-size: 60%; font-variant: small-caps; font-weight: bold; display: inline-block; padding: 1px 5px; background-color: #ff8f00; margin-right: 1em; vertical-align: top; color: #fff; box-shadow: 2px 2px 5px #777; border-radius: 4px;">New!</div></html> MIPS32 release 5 ISA support (Nov. 23, 2018).
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
007c98fa3585cabf2a9db6223d6485f5f6468f17
98
97
2019-01-21T09:42:04Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>h2#firstHeading { display:none;}
</style></html>
== Welcome ==
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system MIPS, Nios II, and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems, intended for education use. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
6e83998c240d282eccb606a22fa9b20ff0900e3c
104
98
2024-08-14T08:44:38Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html><style>#firstHeading { display:none;}
</style></html>
= Welcome =
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system MIPS, Nios II, and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems, intended for education use. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
be136c9ceb8d0a7853787a857d30ef8ea8459bc2
Project:About
4
7
75
40
2017-11-15T04:32:08Z
Henry
1
wikitext
text/x-wiki
=== What's with the name? ===
The name <b>01xz.net</b> is named after the four-state logic used by nets (and variables) in Verilog: '''0''', '''1''', '''x''' (unknown/don't-care), and '''z''' (high impedance). SystemVerilog added two-state (0 and 1) variables to the language, but nets are still always four-state.
=== More ===
Here are links to slightly more detailed About pages for each project:
* [//hdlbits.01xz.net/wiki/Project:About About HDLBits]
* [//asmbits.01xz.net/wiki/Project:About About ASMBits]
* [//cpulator.01xz.net/doc.html CPUlator documentation]
=== What does this site run? ====
This site runs on [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] with the [https://www.mediawiki.org/wiki/Skin:Foreground Foreground skin]. On top of this, substantial new functionality was added as a custom MediaWiki extension.
The back-end (compile, judge, progress tracking) is generally PHP calling shell scripts that run various CAD tools, with the results stored into a MariaDB database.
CPUlator is static HTML, CSS, and JavaScript. The only server-side code is for running the assembler. The core of the simulator is written in C++ and compiled to asm.js using [http://emscripten.org Emscripten]. The simulation runs entirely inside the client browser with no server-side interaction.
a9b1d71056282f2fb07d7c2175837bfd1e4ace0c
76
75
2017-11-15T04:42:40Z
Henry
1
wikitext
text/x-wiki
=== What's with the name? ===
The name <b>01xz.net</b> is named after the four-state logic used by nets (and variables) in Verilog: '''0''', '''1''', '''x''' (unknown/don't-care), and '''z''' (high impedance). SystemVerilog added two-state (0 and 1) variables to the language, but nets are still always four-state.
=== More ===
Here are links to slightly more detailed About pages for each project:
* [//hdlbits.01xz.net/wiki/Project:About About HDLBits]
* [//asmbits.01xz.net/wiki/Project:About About ASMBits]
* [//cpulator.01xz.net/doc.html CPUlator documentation]
=== What does this site run? ===
This site runs on [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] with the [https://www.mediawiki.org/wiki/Skin:Foreground Foreground skin]. On top of this, substantial new functionality was added as a custom MediaWiki extension.
The back-end (compile, judge, progress tracking) is generally PHP calling shell scripts that run various CAD tools, with the results stored into a MariaDB database.
CPUlator is static HTML, CSS, and JavaScript. The only server-side code is for running the assembler. The core of the simulator is written in C++ and compiled to asm.js using [http://emscripten.org Emscripten]. The simulation runs entirely inside the client browser with no server-side interaction.
bc7c6ad61768413d8dfe35fd0cdbc6f9943040e0
81
76
2017-11-17T20:12:33Z
Henry
1
wikitext
text/x-wiki
=== What's with the name? ===
The name <b>01xz.net</b> is named after the four-state logic used by nets (and variables) in Verilog: '''0''', '''1''', '''x''' (unknown/don't-care), and '''z''' (high impedance). SystemVerilog added two-state (0 and 1) variables to the language, but nets are still always four-state.
=== More ===
Here are links to slightly more detailed About pages for each project:
* [//hdlbits.01xz.net/wiki/Project:About About HDLBits]
* [//asmbits.01xz.net/wiki/Project:About About ASMBits]
* [//cpulator.01xz.net/doc.html CPUlator documentation]
===About Me===
I'm [http://www.stuffedcow.net/ Henry Wong], a former lab teaching assistant for ECE253, 243, and 241 at the University of Toronto during my Ph.D. studies. These tools were created during my last few years as TA while pondering how to improve learning when the number of TA hours is finite.
=== What does this site run? ===
This site runs on [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] with the [https://www.mediawiki.org/wiki/Skin:Foreground Foreground skin]. On top of this, substantial new functionality was added as a custom MediaWiki extension.
The back-end (compile, judge, progress tracking) is generally PHP calling shell scripts that run various CAD tools, with the results stored into a MariaDB database.
CPUlator is static HTML, CSS, and JavaScript. The only server-side code is for running the assembler. The core of the simulator is written in C++ and compiled to asm.js using [http://emscripten.org Emscripten]. The simulation runs entirely inside the client browser with no server-side interaction.
a87f72f6767e7eb7c2968906ad85987bf0272a74
File:Logo niossim.png
6
6
99
23
2019-03-10T03:37:58Z
Henry
1
Henry uploaded a new version of [[File:Logo niossim.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
100
99
2019-03-10T03:41:53Z
Henry
1
Henry uploaded a new version of [[File:Logo niossim.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
101
100
2019-03-10T03:44:57Z
Henry
1
Henry uploaded a new version of [[File:Logo niossim.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Foreground.css
8
8
105
2024-08-14T08:50:15Z
Henry
1
Created page with "form#searchform { display: none; }"
css
text/css
form#searchform {
display: none;
}
108e420ce9bde9266ecedf4a5e6ad7fa94d69f83
MediaWiki:Disclaimers
8
9
106
2024-10-02T04:45:45Z
Henry
1
Created page with "-"
wikitext
text/x-wiki
-
3bc15c8aae3e4124dd409035f32ea2fd6835efc9
MediaWiki:Privacy
8
10
107
2024-10-02T04:45:59Z
Henry
1
Created page with "-"
wikitext
text/x-wiki
-
3bc15c8aae3e4124dd409035f32ea2fd6835efc9
Main Page
0
1
108
104
2024-10-02T04:48:16Z
Henry
1
wikitext
text/x-wiki
__NOTOC__
<html>
<style>
div.panel {
border: 1px #ccc solid;
background: #f8fcff;
margin: 0.8em 1.0em;
display: block;
padding: 1em;
}
div.panel div.head a:hover {
color: #2ba6cb;
}
div.panel div.head {
font-size:1.25em;
line-height: 42px;
font-weight: bold;
display:block;
position: relative;
}
div.panel div.head a {
position: relative;
z-index: 1;
color: #1a6177;
padding: 0.8em 0;
}
div.panel img {
display:block;
float:left;
margin: 7px 0.5em 7px 0;
width: 40px;
height: 28px;
}
h3 {
margin-top: 1.4em;
}
div.panel div.head a.plus {
display: block;
position: absolute;
right: 0;
top: 0;
width: 100%;
font-size:36px;
line-height:42px;
color: #aaa;
z-index: 0;
text-align: right;
padding: 0;
}
</style></html>
<b>This site contains tools that help you learn the fundamentals of the design of computers</b>
* [//hdlbits.01xz.net/ '''HDLBits''']: A problem set and online judge to practice digital circuit design in Verilog
* [//asmbits.01xz.net/ '''ASMBits''']: Just like HDLBits, but for practicing Nios II or ARMv7 assembly language
* [//cpulator.01xz.net/ '''CPUlator''']: An in-browser full-system MIPS, Nios II, and ARMv7 simulator and debugger
These tools were originally created to complement second-year undergraduate computer engineering (digital logic and computer organization) courses at the University of Toronto, and have since been used by other similar courses.
Why were these created? Practice is essential when learning any new language (or anything else, really). These tools were created to make it quick and easy to do more practice on short problems.
===What's here?===
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net]][//hdlbits.01xz.net HDLBits]</div>
<div id="panel1_more" style="display:none;">
HDLBits is a set of short Verilog design problems. An online judge checks solutions for correctness. The problems set begins in a tutorial style that teaches basic Verilog language features, and progresses to increasingly challenging designs.
Each problem requires you to write some Verilog code. When you submit your code, the online judge tests your design for correctness (but unfortunately not coding style). The large number of short problems with instant feedback encourages more practice than (typically more difficult but less frequent) assignments or labs.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel5_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_seq.png|link=//hdlbits.01xz.net/wiki/Iverilog]][//hdlbits.01xz.net/wiki/Iverilog Verilog Simulator]</div>
<div id="panel5_more" style="display:none;">
This is a web interface to [http://iverilog.icarus.com/ Icarus Verilog]. Its main purpose is for creating shareable simulations of short bits of Verilog code. The limitations of the web interface mean that running a Verilog simulator offline is more suitable unless you're simulating a very simple circuit.
Main limitations: single source file, limited simulation CPU time, no interactive debugging.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Asmbits_logo.png|link=//asmbits.01xz.net]][//asmbits.01xz.net ASMBits]</div>
<div id="panel2_more" style="display:none;">
ASMBits is a set of short assembly language programming problems (for Nios II and ARMv7), in the same style as HDLBits.
</div>
</div>
<div class="panel"><div class="head"><html><a href="#" onclick="$('#panel3_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>[[File:Logo_niossim.png|link=//cpulator.01xz.net/]][//cpulator.01xz.net/ CPUlator Simulator]</div>
<div id="panel3_more" style="display:none;">
CPUlator is a full-system simulator and debugger for Nios II, ARMv7, and MIPS systems, intended for education use. The simulator also simulates some I/O devices (based on the computer systems used by the Altera University Program for Nios II and ARMv7, based on SPIM for MIPS).
It can be used to work on lab assignments without hardware, to debug solutions for ASMBits exercises, and for in-lecture demonstrations.
The simulator is complete enough to do most lab assignments that are based on Altera's University Program's computer systems (including interrupts, but excluding MMU). The simulator includes run-time assertions to catch common errors (which hardware cannot do).
</div>
</div>
=== How to use? ===
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse1_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For students</div>
<div id="paneluse1_more" style="display:none;">
* '''Practice''': The HDLBits and ASMBits problem sets includes exercises of varying difficulty. Start with the easiest few problems under each topic. Even if you don't have time to get to the more difficult problems, being quick and accurate at creating simple designs can be a big help.
* '''Assembly language programming''': The CPUlator simulator is a nearly-complete simulation of a Nios II and ARMv7 system. It's quicker and easier to debug your lab assignments in the simulator (it even catches some common errors), and in almost all cases programs written in the simulator will work unmodified on real hardware.
</div>
</div>
<div class="panel><div class="head"><html><a href="#" onclick="$('#paneluse2_more').toggle(); return false;" class="plus"><i class="fa fa-angle-double-down" aria-hidden="true"></i></a></html>For instructors</div>
<div id="paneluse2_more" style="display:none;">
* '''Practice''': Simply informing students of the availability of optional "extra practice" tends to reach only the subset of students (my experience so far suggests under 10%). Due to the large number of exercises, suggesting exercises that coincide with the current topic may be useful.
* '''Code examples''': When answering student questions (e.g., on discussion boards), I often code up a demonstration of the answer. The "Upload and share" button in CPUlator can be used to post a link to [https://cpulator.01xz.net/?loadasm=samples/share/kfgb6taom1.s a code example], while the "share" button on the [https://hdlbits.01xz.net/wiki/Iverilog Icarus Verilog web interface] can be used to link to a simple Verilog code example and testbench.
* '''Flipped clasrooms''': The auto-graded exercises could form one component of a flipped classroom, by providing a method for evaluating progress.
* '''Demonstrations''': CPUlator may be useful for in-lecture execution of assembly code, where access to the hardware may not be convenient.
* '''Other''': If you have more ideas, or if you're thinking of using these tools in your courses and need changes or new features, [mailto:henry@stuffedcow.net send me an email]!
** Teaching something other than Verilog, Nios II, or ARMv7? It may be feasible to support a new tool/HDL/instruction set, but I wouldn't spend the effort to support it unless I know someone will use it.
</div>
</div>
132f096e52ea0facf7f7a395ce7bf707bb365e53
MediaWiki:Mainpage-title
8
11
109
2024-10-02T04:49:02Z
Henry
1
Created page with "Welcome"
wikitext
text/x-wiki
Welcome
ca4f9dcf204e2037bfe5884867bead98bd9cbaf8
MediaWiki:Mainpage-title-loggedin
8
12
110
2024-10-02T04:50:30Z
Henry
1
Created page with "Welcome"
wikitext
text/x-wiki
Welcome
ca4f9dcf204e2037bfe5884867bead98bd9cbaf8